(function () {
    // 提取代码  父类
 // 定义一个Animal类
// 继承父类的方法属性     共同的 
// 子类中写自己特有的  子类中有的优先调用自己的。
class Animal{
   // 声明类型
   gname:string
   
   // 构造函数会在对象创建时调用
   constructor(gname:string){
     
       // 赋值
       this.gname=gname
       
   }
   sayHello(){
       console.log('动物在叫');
       
   }
}
  // 立即执行函数 避免和别人冲突  函数作用域
  // 定义狗的类
  class Dog extends Animal{
    gage:number
    // 子类想添加一个属性  
       // 构造函数会在对象创建时调用
   constructor(gname:string, gage:number){
    // 构造函数 要调用父类的构造函数 因为继承
     super(gname)
    // 赋值
    this.gage=gage
    
}
     sayHello() {
        // super 父类
         super.sayHello()
     }
  }
 const wangcai=new Dog('旺财',5)
 console.log(wangcai);
 
  wangcai.sayHello()
 

  





})()